package org.jwd.storage.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jwd.core.entity.UserEntity;
import org.jwd.storage.dao.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author vizz
 * @since 2022/5/14 20:03
 */
@Service
public class UserService extends ServiceImpl<UserMapper, UserEntity> {

    @Autowired
    UserMapper userMapper;

    /**如果在controller里面调取，即使不加注解，第一次一般很久如116ms，第二次及以后只需要9ms左右
     * 这是因为Http请求的缓存生效了
     * CachePut 第一次116ms，第二次以后9ms。其实把注解去了也还是如此，还是查了一遍，因为数据库里面有sql记录
     * Cacheable 不会再查数据库，控制台也没有打印sql记录
     * 如果不指定key，则将方法的参数作为key
     * @return
     */
    @Cacheable(value = "user")
    public List<UserEntity> getAll() {
        return userMapper.selectList(null);
    }
}
